如何加解密敏感信息 | 您所在的位置:网站首页 › 加密与解密 电子版 › 如何加解密敏感信息 |
为了保证通信过程中敏感信息字段(如用户的住址、银行卡号、手机号码等)的机密性,微信支付API v3要求商户对上送的敏感信息字段进行加密。与之相对应,微信支付会对下行的敏感信息字段进行加密,商户需解密后方能得到原文。下面详细介绍加解密的方式,以及如何进行相应的计算。 我们提供了微信支付API v3官方SDK(目前包含Java (opens new window)、PHP (opens new window)、 Go (opens new window)三种语言版本),使用官方 SDK 调用微信支付接口,无需关心签名生成和验证,接入更方便。 # 1. 加密算法敏感信息加密使用的RSA公钥加密算法 (opens new window)。加密算法使用的填充方案,我们使用了相对更安全的RSAES-OAEP(Optimal Asymmetric Encryption Padding)。 RSAES-OAEP在各个编程语言中的模式值为: OpenSSL (opens new window),padding设置为RSA_PKCS1_OAEP_PADDING Java,使用Cipher.getinstance(RSA/ECB/OAEPWithSHA-1AndMGF1Padding) PHP (opens new window),padding设置为OPENSSL_PKCS1_OAEP_PADDING .NET (opens new window),fOAEP设置为true Node.js (opens new window),padding设置为crypto.constants.RSA_PKCS1_OAEP_PADDING GO (opens new window),使用EncryptOAEP开发者应当使用微信支付平台证书中的公钥,对上送的敏感信息进行加密。这样只有拥有私钥的微信支付才能对密文进行解密,从而保证了信息的机密性。 另一方面,微信支付使用 商户证书中的公钥对下行的敏感信息进行加密。开发者应使用商户私钥对下行的敏感信息的密文进行解密。 # 2. 加密示例开发者应当使用微信支付平台证书中的公钥,对上送的敏感信息进行加密。 大部分编程语言支持RSA公钥加密。你可以参考示例,了解如何使用您的编程语言实现敏感信息加密。 示例代码 # 3. 声明加密使用的平台证书某些情况下,微信支付会更新平台证书。这时,商户有多个微信支付平台证书可以用于加密。为了保证解密顺利,商户发起请求的HTTP头部中应包括声明加密所用的平台证书。 商户上送敏感信息时使用微信支付平台公钥加密,证书序列号包含在请求HTTP头部的Wechatpay-Serial # 4. 解密示例微信支付使用商户API证书中的公钥对下行的敏感信息进行加密。开发者应使用商户私钥对下行的敏感信息的密文进行解密。 同样的,大部分编程语言支持RSA私钥解密。你可以参考示例,了解如何使用您的编程语言实现敏感信息解密。 示例代码 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |